#!usr/bin/env python  
# -*- coding:utf-8 _*-
""" 
@author:robot
@file: splice04_sole_dml.py 
@version:
@time: 2022/02/22 
"""
from TapClientCaseData.ColumnGenerateData.dynamic.base.base00_dynamic import ORACLE02_TYPE
from TapClientCaseData.ColumnGenerateData.dynamic.base.base00_dynamic import GET
from TapClientCaseData.ColumnGenerateData.dynamic.base.base00_dynamic import GET_UPDATE

__all__ = [
    'DML_ORACLE_COMMON_WHERE',

    'DML_ORACLE_CHAR', 'DML_ORACLE_CHAR_INSERT_1', 'DML_ORACLE_CHAR_INSERT_2', 'DML_ORACLE_CHAR_UPDATE',
    'DML_ORACLE_VARCHAR2', 'DML_ORACLE_VARCHAR2_INSERT_1', 'DML_ORACLE_VARCHAR2_INSERT_2', 'DML_ORACLE_VARCHAR2_UPDATE',
    'DML_ORACLE_NCHAR', 'DML_ORACLE_NCHAR_INSERT_1', 'DML_ORACLE_NCHAR_INSERT_2', 'DML_ORACLE_NCHAR_UPDATE',
    'DML_ORACLE_NVARCHAR2', 'DML_ORACLE_NVARCHAR2_INSERT_1', 'DML_ORACLE_NVARCHAR2_INSERT_2',
    'DML_ORACLE_NVARCHAR2_UPDATE',

    'DML_ORACLE_NUMBER', 'DML_ORACLE_NUMBER_INSERT_1', 'DML_ORACLE_NUMBER_INSERT_2', 'DML_ORACLE_NUMBER_UPDATE',
    'DML_ORACLE_FLOAT', 'DML_ORACLE_FLOAT_INSERT_1', 'DML_ORACLE_FLOAT_INSERT_2', 'DML_ORACLE_FLOAT_UPDATE',
    'DML_ORACLE_BINARY_FLOAT', 'DML_ORACLE_BINARY_FLOAT_INSERT_1', 'DML_ORACLE_BINARY_FLOAT_INSERT_2',
    'DML_ORACLE_BINARY_FLOAT_UPDATE',
    'DML_ORACLE_BINARY_DOUBLE', 'DML_ORACLE_BINARY_DOUBLE_INSERT_1', 'DML_ORACLE_BINARY_DOUBLE_INSERT_2',
    'DML_ORACLE_BINARY_DOUBLE_UPDATE',
    'DML_ORACLE_DATE', 'DML_ORACLE_DATE_INSERT_1', 'DML_ORACLE_DATE_INSERT_2', 'DML_ORACLE_DATE_UPDATE',
    'DML_ORACLE_TIMESTAMP', 'DML_ORACLE_TIMESTAMP_INSERT_1', 'DML_ORACLE_TIMESTAMP_INSERT_2',
    'DML_ORACLE_TIMESTAMP_UPDATE',

    'DML_ORACLE_TIMESTAMP_WITH_TIME_ZONE', 'DML_ORACLE_TIMESTAMP_WITH_TIME_ZONE_INSERT_1',
    'DML_ORACLE_TIMESTAMP_WITH_TIME_ZONE_INSERT_2', 'DML_ORACLE_TIMESTAMP_WITH_TIME_ZONE_UPDATE',

    'DML_ORACLE_TIMESTAMP_WITH_LOCAL_TIME_ZONE', 'DML_ORACLE_TIMESTAMP_WITH_LOCAL_TIME_ZONE_INSERT_1',
    'DML_ORACLE_TIMESTAMP_WITH_LOCAL_TIME_ZONE_INSERT_2', 'DML_ORACLE_TIMESTAMP_WITH_LOCAL_TIME_ZONE_UPDATE',

    'DML_ORACLE_BLOB', 'DML_ORACLE_BLOB_INSERT_1', 'DML_ORACLE_BLOB_INSERT_2', 'DML_ORACLE_BLOB_UPDATE',

    'DML_ORACLE_CLOB', 'DML_ORACLE_CLOB_INSERT_1', 'DML_ORACLE_CLOB_INSERT_2', 'DML_ORACLE_CLOB_UPDATE',

    'DML_ORACLE_NCLOB', 'DML_ORACLE_NCLOB_INSERT_1', 'DML_ORACLE_NCLOB_INSERT_2', 'DML_ORACLE_NCLOB_UPDATE',

    'DML_ORACLE_BFILE', 'DML_ORACLE_BFILE_INSERT_1', 'DML_ORACLE_BFILE_INSERT_2', 'DML_ORACLE_BFILE_UPDATE',

    'DML_ORACLE_RAW_RAW', 'DML_ORACLE_RAW_INSERT_1', 'DML_ORACLE_RAW_INSERT_2', 'DML_ORACLE_RAW_UPDATE',
    'DML_ORACLE_LONG_RAW', 'DML_ORACLE_LONG_RAW_INSERT_1', 'DML_ORACLE_LONG_RAW_INSERT_2', 'DML_ORACLE_LONG_RAW_UPDATE'
]


def ORACLE_SOLE_GET_INSERT1(dictionary):
    return [dictionary.get('COLUMNS'), dictionary.get('INSERT_1')]


def ORACLE_SOLE_GET_INSERT2(dictionary):
    return [dictionary.get('COLUMNS'), dictionary.get('INSERT_2')]


# ---------- SOLE DML -----------

DML_ORACLE_COMMON = GET(ORACLE02_TYPE, 'COMMON')
DML_ORACLE_COMMON_WHERE = GET(DML_ORACLE_COMMON, 'WHERE')

ORACLE02_DML_TYPE = ORACLE02_TYPE.get('COLUMNS')
# ---- CHARACTER ----
DML_ORACLE_CHARACTER = GET(ORACLE02_DML_TYPE, 'CHARACTER')

# -- CHAR --
DML_ORACLE_CHAR = GET(DML_ORACLE_CHARACTER, 'CHAR')
DML_ORACLE_CHAR_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_CHAR)
DML_ORACLE_CHAR_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_CHAR)
DML_ORACLE_CHAR_UPDATE = GET_UPDATE(DML_ORACLE_CHAR)

# -- VARCHAR2 --
DML_ORACLE_VARCHAR2 = GET(DML_ORACLE_CHARACTER, 'VARCHAR2')
DML_ORACLE_VARCHAR2_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_VARCHAR2)
DML_ORACLE_VARCHAR2_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_VARCHAR2)
DML_ORACLE_VARCHAR2_UPDATE = GET_UPDATE(DML_ORACLE_VARCHAR2)

# -- NCHAR --
DML_ORACLE_NCHAR = GET(DML_ORACLE_CHARACTER, 'NCHAR')
DML_ORACLE_NCHAR_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_NCHAR)
DML_ORACLE_NCHAR_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_NCHAR)
DML_ORACLE_NCHAR_UPDATE = GET_UPDATE(DML_ORACLE_NCHAR)

# -- NVARCHAR2 --
DML_ORACLE_NVARCHAR2 = GET(DML_ORACLE_CHARACTER, 'NVARCHAR2')
DML_ORACLE_NVARCHAR2_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_NVARCHAR2)
DML_ORACLE_NVARCHAR2_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_NVARCHAR2)
DML_ORACLE_NVARCHAR2_UPDATE = GET_UPDATE(DML_ORACLE_NVARCHAR2)

# ---- NUMERIC ----
DML_ORACLE_NUMERIC = GET(ORACLE02_DML_TYPE, 'NUMERIC')

# -- NUMBER --
DML_ORACLE_NUMBER = GET(DML_ORACLE_NUMERIC, 'NUMBER')
DML_ORACLE_NUMBER_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_NUMBER)
DML_ORACLE_NUMBER_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_NUMBER)
DML_ORACLE_NUMBER_UPDATE = GET_UPDATE(DML_ORACLE_NUMBER)
# -- FLOAT --
DML_ORACLE_FLOAT = GET(DML_ORACLE_NUMERIC, 'FLOAT')
DML_ORACLE_FLOAT_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_FLOAT)
DML_ORACLE_FLOAT_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_FLOAT)
DML_ORACLE_FLOAT_UPDATE = GET_UPDATE(DML_ORACLE_FLOAT)

# -- BINARY_FLOAT --
DML_ORACLE_BINARY_FLOAT = GET(DML_ORACLE_NUMERIC, 'BINARY_FLOAT')
DML_ORACLE_BINARY_FLOAT_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_BINARY_FLOAT)
DML_ORACLE_BINARY_FLOAT_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_BINARY_FLOAT)
DML_ORACLE_BINARY_FLOAT_UPDATE = GET_UPDATE(DML_ORACLE_BINARY_FLOAT)

# -- BINARY_DOUBLE --
DML_ORACLE_BINARY_DOUBLE = GET(DML_ORACLE_NUMERIC, 'BINARY_DOUBLE')
DML_ORACLE_BINARY_DOUBLE_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_BINARY_DOUBLE)
DML_ORACLE_BINARY_DOUBLE_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_BINARY_DOUBLE)
DML_ORACLE_BINARY_DOUBLE_UPDATE = GET_UPDATE(DML_ORACLE_BINARY_DOUBLE)

# ---- DATE ----
DML_ORACLE_DATE_TIME = GET(ORACLE02_DML_TYPE, 'DATE')

# -- DATE --
DML_ORACLE_DATE = GET(DML_ORACLE_DATE_TIME, 'DATE')
DML_ORACLE_DATE_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_DATE)
DML_ORACLE_DATE_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_DATE)
DML_ORACLE_DATE_UPDATE = GET_UPDATE(DML_ORACLE_DATE)

# -- TIMESTAMP --
DML_ORACLE_TIMESTAMP = GET(DML_ORACLE_DATE_TIME, 'TIMESTAMP')
DML_ORACLE_TIMESTAMP_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_TIMESTAMP)
DML_ORACLE_TIMESTAMP_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_TIMESTAMP)
DML_ORACLE_TIMESTAMP_UPDATE = GET_UPDATE(DML_ORACLE_TIMESTAMP)

# -- TIMESTAMP WITH TIME ZONE --
DML_ORACLE_TIMESTAMP_WITH_TIME_ZONE = GET(DML_ORACLE_DATE_TIME, 'TIMESTAMP_WITH_TIME_ZONE')
DML_ORACLE_TIMESTAMP_WITH_TIME_ZONE_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_TIMESTAMP_WITH_TIME_ZONE)
DML_ORACLE_TIMESTAMP_WITH_TIME_ZONE_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_TIMESTAMP_WITH_TIME_ZONE)
DML_ORACLE_TIMESTAMP_WITH_TIME_ZONE_UPDATE = GET_UPDATE(DML_ORACLE_TIMESTAMP_WITH_TIME_ZONE)
# -- TIMESTAMP WITH LOCAL TIME ZONE --
DML_ORACLE_TIMESTAMP_WITH_LOCAL_TIME_ZONE = GET(DML_ORACLE_DATE_TIME, 'TIMESTAMP_WITH_LOCAL_TIME_ZONE')
DML_ORACLE_TIMESTAMP_WITH_LOCAL_TIME_ZONE_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_TIMESTAMP_WITH_LOCAL_TIME_ZONE)
DML_ORACLE_TIMESTAMP_WITH_LOCAL_TIME_ZONE_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_TIMESTAMP_WITH_LOCAL_TIME_ZONE)
DML_ORACLE_TIMESTAMP_WITH_LOCAL_TIME_ZONE_UPDATE = GET_UPDATE(DML_ORACLE_TIMESTAMP_WITH_LOCAL_TIME_ZONE)

# -- INTERVAL YEAR TO MONTH
DML_ORACLE_INTERVAL_YEAR_TO_MONTH = GET(DML_ORACLE_DATE_TIME, 'INTERVAL_YEAR_TO_MONTH')
DML_ORACLE_INTERVAL_YEAR_TO_MONTH_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_INTERVAL_YEAR_TO_MONTH)
DML_ORACLE_INTERVAL_YEAR_TO_MONTH_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_INTERVAL_YEAR_TO_MONTH)
DML_ORACLE_INTERVAL_YEAR_TO_MONTH_UPDATE = GET_UPDATE(DML_ORACLE_INTERVAL_YEAR_TO_MONTH)

# -- INTERVAL DAY TO SECOND
DML_ORACLE_INTERVAL_DAY_TO_SECOND = GET(DML_ORACLE_DATE_TIME, 'INTERVAL_DAY_TO_SECOND')
DML_ORACLE_INTERVAL_DAY_TO_SECOND_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_INTERVAL_DAY_TO_SECOND)
DML_ORACLE_INTERVAL_DAY_TO_SECOND_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_INTERVAL_DAY_TO_SECOND)
DML_ORACLE_INTERVAL_DAY_TO_SECOND_UPDATE = GET_UPDATE(DML_ORACLE_INTERVAL_DAY_TO_SECOND)

# ---- LOB ----
DML_ORACLE_LOB = GET(ORACLE02_DML_TYPE, 'LOB')

# -- LONG --
# not support
# DML_ORACLE_LONG = GET(DML_ORACLE_LOB, 'LONG')
# DML_ORACLE_LONG_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_LONG)
# DML_ORACLE_LONG_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_LONG)
# DML_ORACLE_LONG_UPDATE = GET_UPDATE(DML_ORACLE_LONG)

# -- BLOB --
DML_ORACLE_BLOB = GET(DML_ORACLE_LOB, 'BLOB')
DML_ORACLE_BLOB_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_BLOB)
DML_ORACLE_BLOB_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_BLOB)
DML_ORACLE_BLOB_UPDATE = GET_UPDATE(DML_ORACLE_BLOB)

# -- CLOB --
DML_ORACLE_CLOB = GET(DML_ORACLE_LOB, 'CLOB')
DML_ORACLE_CLOB_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_CLOB)
DML_ORACLE_CLOB_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_CLOB)
DML_ORACLE_CLOB_UPDATE = GET_UPDATE(DML_ORACLE_CLOB)

# -- NCLOB --
DML_ORACLE_NCLOB = GET(DML_ORACLE_LOB, 'NCLOB')
DML_ORACLE_NCLOB_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_NCLOB)
DML_ORACLE_NCLOB_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_NCLOB)
DML_ORACLE_NCLOB_UPDATE = GET_UPDATE(DML_ORACLE_NCLOB)

# -- BFILE --
DML_ORACLE_BFILE = GET(DML_ORACLE_LOB, 'BFILE')
DML_ORACLE_BFILE_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_BFILE)
DML_ORACLE_BFILE_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_BFILE)
DML_ORACLE_BFILE_UPDATE = GET_UPDATE(DML_ORACLE_BFILE)

# ---- RAW ----
DML_ORACLE_RAW = GET(ORACLE02_DML_TYPE, 'RAW')

# -- RAW RAW--
DML_ORACLE_RAW_RAW = GET(DML_ORACLE_RAW, 'RAW')
DML_ORACLE_RAW_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_RAW_RAW)
DML_ORACLE_RAW_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_RAW_RAW)
DML_ORACLE_RAW_UPDATE = GET_UPDATE(DML_ORACLE_RAW_RAW)

# -- LONG RAW --
DML_ORACLE_LONG_RAW = GET(DML_ORACLE_RAW, 'LONG_RAW')
DML_ORACLE_LONG_RAW_INSERT_1 = ORACLE_SOLE_GET_INSERT1(DML_ORACLE_LONG_RAW)
DML_ORACLE_LONG_RAW_INSERT_2 = ORACLE_SOLE_GET_INSERT2(DML_ORACLE_LONG_RAW)
DML_ORACLE_LONG_RAW_UPDATE = GET_UPDATE(DML_ORACLE_LONG_RAW)
